#include <iostream>

using std::cout;
using std::endl;

class ISBN10
{
public :
    ISBN10();
    void feed(int n);
    int  check();
private :
    int multiplier;
    int sum;
};

ISBN10::ISBN10()
{
    multiplier = 10;
    sum = 0;
}

void
ISBN10::feed(int n)
{
    sum += (multiplier * n);

    --multiplier;
}

int
ISBN10::check()
{
    return 11 - (sum % 11);
}

class ISBN13
{
public :
    ISBN13();
    void feed(int n);
    int  check();

private :
    int multiplier;
    int sum;
};

ISBN13::ISBN13()
{
    multiplier = 1;
    sum = 0;
}

void
ISBN13::feed(int n)
{
    sum += (multiplier * n);

    multiplier = (multiplier == 1) ? 3 : 1;
}

int
ISBN13::check()
{
    return 10 - (sum % 10);
}

int
main(int argc, char **argv)
{

    ISBN13 isbn13;

    isbn13.feed(9);
    isbn13.feed(7);
    isbn13.feed(8);
    isbn13.feed(0);
    isbn13.feed(3);
    isbn13.feed(0);
    isbn13.feed(6);
    isbn13.feed(4);
    isbn13.feed(0);
    isbn13.feed(6);
    isbn13.feed(1);
    isbn13.feed(5);

    cout << isbn13.check() << endl;

    ISBN10 isbn10;

    isbn10.feed(0);
    isbn10.feed(3);
    isbn10.feed(0);
    isbn10.feed(6);
    isbn10.feed(4);
    isbn10.feed(0);
    isbn10.feed(6);
    isbn10.feed(1);
    isbn10.feed(5);

    cout << isbn10.check() << endl;
}
